from django.db import models

class Osoba(models.Model):
	imie=models.CharField(max_length=64)
	nazwisko=models.CharField(max_length=128)
	def __unicode__(self):
		return "%s %s" % (self.imie, self.nazwisko, )

class Wychowawca(Osoba):
	pass

class Klasa(models.Model):
	nazwa=models.CharField(max_length=128)
	wychowawca = models.OneToOneField(Wychowawca)
	def __unicode__(self):
		return self.nazwa

class Nauczyciel(Osoba):
	pass

class Przedmiot(models.Model):
	nazwa=models.CharField(max_length=128)
	klasa = models.ForeignKey(Klasa)
	nauczyciel = models.ForeignKey(Nauczyciel)
	def __unicode__(self):
		return self.nazwa

class Uczen(Osoba):
	klasa = models.ForeignKey(Klasa)
	przedmioty = models.ManyToManyField(Przedmiot, through = "Aktywnosc")
	def __unicode__(self):
		return "%s %s %s" % (self.imie, self.nazwisko, self.klasa)

class Aktywnosc(models.Model):
	uczen = models.ForeignKey(Uczen)
	przedmiot = models.ForeignKey(Przedmiot)
	data = models.DateField()

class Obecnosc(models.Model):
	STATUS_CHOICES_OBECNOSC = (
    ('n', 'nieobecny'),
    ('s', 'spozniony'),
  )
	opis=models.CharField(max_length=128, null=True)
	aktywnosc = models.OneToOneField(Aktywnosc)
	status = models.CharField(max_length = 1, choices=STATUS_CHOICES_OBECNOSC)
	usprawiedliwiona = models.NullBooleanField(null=True)
	def __unicode__(self):
		return ""
  

class Ocena(models.Model):
	wysokosc=models.IntegerField()
	aktywnosc = models.ForeignKey(Aktywnosc)
	def __unicode__(self):
		return "%s" % (self.wysokosc,)
